﻿// Decompiled with JetBrains decompiler
// Type: Microsoft.InfoCards.EncryptedObjectHeader
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// MVID: 8E14765A-6610-409A-BA36-099A0642905D
// Assembly location: E:\git\ALLIDA\windll\infocard.exe

using System.Runtime.InteropServices;

namespace Microsoft.InfoCards
{
  [StructLayout(LayoutKind.Explicit, Size = 72)]
  internal struct EncryptedObjectHeader
  {
    public const int StructSize = 72;
    public const int IVBlockSize = 32;
    public const int IVOffset = 0;
    public const int GlobalIdOffset = 32;
    public const int LastChangeOffset = 48;
    public const int DataSizeOffset = 56;
    public const int ObjectTypeOffset = 60;
    public const int LocalIdOffset = 64;
    public const int TailPaddingOffset = 68;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
    [FieldOffset(0)]
    public byte IV;
    [MarshalAs(UnmanagedType.Struct)]
    [FieldOffset(32)]
    public GlobalId GlobalId;
    [MarshalAs(UnmanagedType.I8)]
    [FieldOffset(48)]
    public long LastChange;
    [MarshalAs(UnmanagedType.I4)]
    [FieldOffset(56)]
    public int DataSize;
    [MarshalAs(UnmanagedType.I4)]
    [FieldOffset(60)]
    public int ObjectType;
    [MarshalAs(UnmanagedType.I4)]
    [FieldOffset(64)]
    public int LocalId;
    [MarshalAs(UnmanagedType.I4)]
    [FieldOffset(68)]
    private int TailPadding;
  }
}
